
# 字典
"""
1. 概念：是以键值对形式存放数据类型的容器 ，存放的数据类型是无序的 ，所以它是一个无序序列 。
2. 定义：
    变量名 = {} or dict()
    变量名 = {key1:value1,key2:value2,...}
3. 说明：
    (1). 它是一个无序序列 ，不能通过索引去获取。
    (2). 它可以存放任意的键值对，键名是一个字符，值是任意的数据类型。
    (3). 它也是可变化对象，支持增删改查
"""

# 1. 定义字典
dct1 = {}
dct2 = dict()
dct3 = {'a':1,'b':'hello world','c':12.1}
print(dct1)
print(dct2)
print(dct3)

# 2. 通过key去获取 键值对：dict[key] ,这里的key必须存在，否则会报错
print("获取键名为a的值:",dct3['a'])

# 3. 通过key去修改 ： dict[key] = new_value ，这里的key是存在的
dct3['b'] = 'hello 中国'
print(dct3)

# 4. 通过key新增 ： dict[key] = new_value ，这里的key是不存在的
dct3['d'] = 'hello 中国'
print(dct3)

# 5. 字典中的方法
"""
get(key)        : 获取字典中key对应的值
key in dict     : key是否在字典中
items()         : 以列表的形式返回(键,值)数据
keys()          : 返回所有的键名
values()        : 返回所有的值
pop(key)        : 删除对应的键值对
update(dict1)   : 将字典dict1的数据更新到当前字典中。
"""
print("==============================")
dct4 = {'a':'hello world','b':2.3,'c':20,'d':None}
print("获取键名为a的值:",dct4.get('a'))
print("获取键名为e的值:",dct4.get('e'))        # 当健名不存在时，返回的是None

print("健名为e是否在字典中",'e' in dct4)

print(dct4.items())
for key,value in dct4.items():
    print("key:",key,"===========","value:",value)

for key in dct4.keys():
    print("key:",key)

for value in dct4.values():
    print("value:",value)

dct4.pop('d')
print(dct4)

dct5 = {'hello':'python','world':'go'}
dct4.update(dct5)
print(dct4)